package com.cy.sentinel;

import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;

/**
 * @Usefulness: 用途
 * @Author: LeiTing
 * @Date: 2021/9/22  14:16
 * @Version 1.0
 */

/**
 * 定义一个请求源解析对象，基于此对象请求中指定数据进行解析，
 * 然后Sentinel底层会对此接口方法的返回值基于规则的定义进行处理。
 */
@Component
public class DefaultRequestOriginParser implements RequestOriginParser {
    //解析请求源
    @Override
    public String parseOrigin(HttpServletRequest httpServletRequest) {
        //获取请求参数数据，参数名可以自己写
        //http://localhost:8090/path?origin=app1
        //http://ip:port/path?origin=app1
        return httpServletRequest.getParameter("origin");
    }//授权规则中的黑白名单的值，来自此方法的返回值
}
